// 最长湍流子数组
class Solution {
    public:
        int maxTurbulenceSize(vector<int>& arr) {
            int n = arr.size();
            // dp[i] 表示以i为结尾时湍流子数组的最大个数
            vector<int> dp1(n,1);
            vector<int> dp2(n,1);
            for(int i = 1 ; i < n; i++)
            {
                if(i % 2 == 1)
                {
                    if(arr[i-1] > arr[i])
                    {
                        dp1[i] = dp1[i-1] + 1;
                    }
                    if(arr[i-1] < arr[i])
                    {
                        dp2[i] = dp2[i-1] + 1;
                    }
                }
                else
                {
                    if(arr[i-1] < arr[i])
                    {
                        dp1[i] = dp1[i-1] + 1;
                    }
                    if(arr[i-1] > arr[i])
                    {
                        dp2[i] = dp2[i-1] + 1;
                    }
                }
    
            }
            int ret = 0;
            ret = max(*std::max_element(dp1.begin(),dp1.end()),*std::max_element(dp2.begin(),dp2.end()));
            return ret;
        }
    };